/*****************************************Copyright(C)******************************************
******************************************* *********************************************
*------------------------------------------文件信息---------------------------------------------
* FileName          : protocol_adapter.h
* Author            : 张婷颖
* Version           : 1.0V
* Description       : 用于支持PCT相关工作的头文件
*----------------------------------------历史版本信息-------------------------------------------
* History           :
* Description       :
*-----------------------------------------------------------------------------------------------
***********************************************************************************************/
#ifndef PROTOCOL_ADAPTER_H_
#define PROTOCOL_ADAPTER_H_
/* Includes-----------------------------------------------------------------------------------*/
#include "stdint.h"
/* Private define-----------------------------------------------------------------------------*/
#define M_HEAD     0x68
//#define M_EG       0xA1
//#define M_CP       0xA3
#define M_END      0x16
//#define CP_DEMAND  0xB1
//#define CP_ORDER   0xB2
//
//#define M_W        0x00
//#define M_R        0x01
//#define M_CP_W     0x02
//#define M_CP_R     0x03
//
//#define SEND_ORDER 0xE3

/* Private typedef----------------------------------------------------------------------------*/
//typedef enum                                 //边缘网关状态     先发送指令再设置边缘网关状态
//{
//	EDGE_START = 0xAA,                      //启动状态，用于编译完成后接收bin文件，即执行下发指令阶段
//	EDGE_PREOPERATE,                        //预运行状态，用于执行 发送指令和需求阶段
//	EDGE_OPERATE,                           //数据采集阶段
//}EDGE_STATUS_T;

typedef enum                                 //边缘网关状态     先发送指令再设置边缘网关状态
{
	EDGE_PREOPERATE = 0xAB,                        //预运行状态，用于编译完成后接收bin文件，即执行下发指令阶段
	EDGE_OPERATE = 0xAC,                           //数据采集阶段
}EDGE_STATUS_T;

/* Private macro------------------------------------------------------------------------------*/

/* Private variables--------------------------------------------------------------------------*/
extern EDGE_STATUS_T edge_status;
/* Private function prototypes----------------------------------------------------------------*/

/* Private functions--------------------------------------------------------------------------*/
void analysis_adapter(uint8_t *pct,uint8_t len);                               //在运行状态下，接收ubuntu信息，设置扩展板状态，并返回设置结果
void ask_adapter_ok(void);                                                     //重启后向麦尔通响应重启成功（适配成功）
//void analysis_pct_adapter(uint8_t *pct,uint8_t len);                           //peroperate状态下，接收PCT的信息并解析
//void set_edge(EDGE_STATUS_T set_status);                                       //设置边缘网关状态
//void read_edge(void);                                                          //读取边缘网关状态
//
//void whether_send_order(uint8_t *p,uint8_t len);                               //start状态下，检测是否是发送指令
//void whether_set_peroperate(uint8_t *p,uint8_t len);                           //operate状态下，检测是否是设置为peroperate
//void ask_send_order_ok(void);                                                  //重启后向pct及麦尔通响应重启成功（下发指令成功）

#endif /* PROTOCOL_ADAPTER_H_ */
